//1.導入axios
import router from '@/router';
import axios from 'axios'

//2.创建请求实例
const instance = axios.create({
    timeout: 5000,
})

//3.请求拦截器
instance.interceptors.request.use(
    //参数1:请求发送成功执行的函数
    (req) => {
        if (req.method === 'post') {
            //处理所有的post请求
            const token = localStorage.getItem("token")
            req.headers.token = token
            //注:发送请求头信息 只有post请求设置 get没有请求头!!!!!!!!!
        }
        return req;
    },
    //参数2:请求发送失败执行的函数
    (error) => {
        //返回成功信息
        // Promise.resolve()
        //返回错误信息
        return Promise.reject(error);
        // console.log(error);

    }
)
//4.响应拦截器
instance.interceptors.response.use(
    //参数1 响应成功函数、
    resp => {
        console.log(resp);

        return resp.status == 200 ?
            Promise.resolve(resp) : Promise.reject(resp)
    },
    //参数2 响应失败函数
    error => {
        const { response } = error
        console.log(error)
        console.log(response)
        // response.status
        errorMapping(response.status, response.info)
        return Promise.reject(error)
    }
)

//5.编写错误映射(什么错误出现什么信息)
const errorMapping = (status: Number, info: String) => {
    switch (status) {
        case 400:
            console.log('客户端参数不对');
            break;
        case 404:
            console.log("地址不对");
            break;
        case 401:
            console.log("未登录");
            // router.push("/login")
            // break
        default:
            console.log(info);
    }
}

//导出实例
export default instance;